home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 22
/
Cream of the Crop 22.iso
/
doom
/
mnstlure.zip
/
PROGS
/
DEBUG.QC
< prev
next >
Wrap
Text File
|
1996-09-04
|
24KB
|
1,031 lines
/*$cd /raid/quake/id1/models/player_4
$origin 0 -6 24
$base base
$skin skin
$frame stand1 stand2 stand3 stand4 stand5*/
//void() walkmonster_start;
void(float dist) ai_run;
float(entity targ) infront;
.float MEFexpire;
float MGFexpire_limit=30;
float MGFmobileexpire_limit=80;
.float bubclass;
.entity reportent;
.string oldmodel;
.vector investigate;
.float debugflags;
.entity childdot;
.vector dotoffset;
.vector origmins;
.vector origmaxs;
.entity mydots;
.void()mythink;
.float mynextthink;
.void()origthink;
float dotcount=0;
float maxdots=100;
float dotsmade=0;
float dotskilled=0;
float ADJUSTMODE_SIDEPLUS=1;//deceptively named, sorry. a better name
float ADJUSTMODE_SIDEMINUS=2;//would be _SIDEMAX and _SIDEMIN
float ADJUSTMODE_ALL=4;
float ADJUSTMODE_SIDE=8;
float ADJUSTMODE_BOTH=16;
float ADJUSTMODE_X=32;
float ADJUSTMODE_Y=64;
float ADJUSTMODE_Z=128;
float adjustmode=145;
float DEBUG_PAINTED=1;
float DEBUG_HIDDEN=2;
float DEBUG_CHASE=4;
float DEBUG_ORIGSET=8;
float DEBUG_SLOWED=16;
float MOVE_DOT_TIME=0.2;
float DOTCLASS_MASTER = 0;
float DOTCLASS_LBL = 1;
float DOTCLASS_LBR = 2;
float DOTCLASS_LFL = 3;
float DOTCLASS_LFR = 4;
float DOTCLASS_TBL = 5;
float DOTCLASS_TBR = 6;
float DOTCLASS_TFL = 7;
float DOTCLASS_TFR = 8;
float DOTCLASS_VIEW = 9;
void() MYF_ai_run = {
self.enemy=self.oldenemy;
self.nextthink=time+0.5;
self.think=self.th_walk;
};
void () MYF_movedots = {
local entity next,thisdot;
thisdot=self;
next=thisdot.childdot;
while(next!=world){
next=thisdot.childdot;
setorigin (thisdot,thisdot.owner.origin+thisdot.dotoffset);
thisdot=next;
}
};
void() MYF_killdots = {
local entity next,thisdot;
next=self.childdot;
thisdot=self;
local string dclass;
self.owner.debugflags=self.owner.debugflags - (self.owner.debugflags & DEBUG_PAINTED);
while(next!=world){
/* bprint("killing dot ");
bprint(ftos(thisdot.bubclass));
bprint("\n");*/
next=thisdot.childdot;
remove(thisdot);
dotskilled=dotskilled+1;
thisdot=next;
dotcount=dotcount - 1;
}
/* bprint("killing dot ");
bprint(ftos(thisdot.bubclass));
bprint("\n");
dotskilled=dotskilled+1;
remove(thisdot);*/
};
void () MYF_dotthink = {
MYF_movedots();
self.nextthink=time+MGFexpire_limit;
self.think=MYF_killdots;
};
void () MYF_dotthink_mobile = {
self.nextthink=time+MOVE_DOT_TIME;
self.think=MYF_dotthink_mobile;
self.MEFexpire=self.MEFexpire+MOVE_DOT_TIME;
if(self.MEFexpire>MGFmobileexpire_limit){
MYF_killdots();
return;
}
MYF_movedots();
};
void (entity on) MYF_resetdots = {
local entity next,thisdot;
local entity s2;
if(on.mydots==world)
return;
if(!on.mydots)
return;
thisdot=on.mydots;
next=thisdot.childdot;
while(next!=world){
next=thisdot.childdot;
s2=thisdot;
if(s2.bubclass==DOTCLASS_MASTER){
s2.dotoffset='0 0 0';
}
else
if(s2.bubclass==DOTCLASS_LBL){
s2.dotoffset_x=on.mins_x;
s2.dotoffset_y=on.mins_y;
s2.dotoffset_z=on.mins_z;
}
else
if(s2.bubclass==DOTCLASS_LBR){
s2.dotoffset_x=on.maxs_x;
s2.dotoffset_y=on.mins_y;
s2.dotoffset_z=on.mins_z;
}
else
if(s2.bubclass==DOTCLASS_LFL){
s2.dotoffset_x=on.maxs_x;
s2.dotoffset_y=on.maxs_y;
s2.dotoffset_z=on.mins_z;
}
else
if(s2.bubclass==DOTCLASS_LFR){
s2.dotoffset_x=on.mins_x;
s2.dotoffset_y=on.maxs_y;
s2.dotoffset_z=on.mins_z;
}
else
if(s2.bubclass==DOTCLASS_TBL){
s2.dotoffset_x=on.maxs_x;
s2.dotoffset_y=on.maxs_y;
s2.dotoffset_z=on.maxs_z;
}
else
if(s2.bubclass==DOTCLASS_TBR){
s2.dotoffset_x=on.mins_x;
s2.dotoffset_y=on.maxs_y;
s2.dotoffset_z=on.maxs_z;
}
else
if(s2.bubclass==DOTCLASS_TFL){
s2.dotoffset_x=on.maxs_x;
s2.dotoffset_y=on.mins_y;
s2.dotoffset_z=on.maxs_z;
}
else
if(s2.bubclass==DOTCLASS_TFR){
s2.dotoffset_x=on.mins_x;
s2.dotoffset_y=on.mins_y;
s2.dotoffset_z=on.maxs_z;
}
else
if(s2.bubclass==DOTCLASS_VIEW){
s2.dotoffset=on.view_ofs;
}
setorigin(s2,on.origin+s2.dotoffset);
thisdot=next;
}
};
entity(entity on,float bclass) MYF_makedot = {
local entity s2;
if(dotcount>=maxdots){
centerprint(self,"max dot count reached\n");
return world;
}
dotcount=dotcount + 1;
dotsmade=dotsmade+1;
s2=spawn();
s2.owner = on;
setsize(s2, '0 0 0', '0 0 0');
s2.classname = "dot";
s2.movetype = MOVETYPE_NONE;
s2.solid = SOLID_NOT;
setmodel (s2, "progs/s_bubble.spr");
s2.MEFexpire=0;
s2.bubclass=bclass;
s2.childdot=world;
if(bclass==DOTCLASS_MASTER){
s2.dotoffset='0 0 0';
}
else
if(bclass==DOTCLASS_LBL){
s2.dotoffset_x=on.mins_x;
s2.dotoffset_y=on.mins_y;
s2.dotoffset_z=on.mins_z;
}
else
if(bclass==DOTCLASS_LBR){
s2.dotoffset_x=on.maxs_x;
s2.dotoffset_y=on.mins_y;
s2.dotoffset_z=on.mins_z;
}
else
if(bclass==DOTCLASS_LFL){
s2.dotoffset_x=on.maxs_x;
s2.dotoffset_y=on.maxs_y;
s2.dotoffset_z=on.mins_z;
}
else
if(bclass==DOTCLASS_LFR){
s2.dotoffset_x=on.mins_x;
s2.dotoffset_y=on.maxs_y;
s2.dotoffset_z=on.mins_z;
}
else
if(bclass==DOTCLASS_TBL){
s2.dotoffset_x=on.maxs_x;
s2.dotoffset_y=on.maxs_y;
s2.dotoffset_z=on.maxs_z;
}
else
if(bclass==DOTCLASS_TBR){
s2.dotoffset_x=on.mins_x;
s2.dotoffset_y=on.maxs_y;
s2.dotoffset_z=on.maxs_z;
}
else
if(bclass==DOTCLASS_TFL){
s2.dotoffset_x=on.maxs_x;
s2.dotoffset_y=on.mins_y;
s2.dotoffset_z=on.maxs_z;
}
else
if(bclass==DOTCLASS_TFR){
s2.dotoffset_x=on.mins_x;
s2.dotoffset_y=on.mins_y;
s2.dotoffset_z=on.maxs_z;
}
else
if(bclass==DOTCLASS_VIEW){
s2.dotoffset=on.view_ofs;
// s2.dotoffset_y=on.maxs_y;
}
// setorigin(s2,on.origin+self.dotoffset);
return s2;
};
void(entity on) MYF_putdots = {
local entity master,s2;
s2=MYF_makedot(on,0);
if(s2==world) return;
if(on.flags & FL_MONSTER || on.classname=="player"){
bprint("painting as mobile\n");
s2.nextthink = time + 0.5;
s2.think = MYF_dotthink_mobile;
}
else{
bprint("painting as NON-mobile\n");
s2.nextthink = time + 0.5;
s2.think = MYF_dotthink;
}
s2.classname = "masterdot";
master=s2;
on.debugflags=on.debugflags | DEBUG_PAINTED;
on.mydots=s2;
s2=MYF_makedot(on,DOTCLASS_LBL);
if(s2==world) return;
master.childdot=s2;
master=s2;
s2=MYF_makedot(on,DOTCLASS_LBR);
if(s2==world) return;
master.childdot=s2;
master=s2;
s2=MYF_makedot(on,DOTCLASS_LFL);
if(s2==world) return;
master.childdot=s2;
master=s2;
s2=MYF_makedot(on,DOTCLASS_LFR);
if(s2==world) return;
master.childdot=s2;
master=s2;
s2=MYF_makedot(on,DOTCLASS_TBL);
if(s2==world) return;
master.childdot=s2;
master=s2;
s2=MYF_makedot(on,DOTCLASS_TBR);
if(s2==world) return;
master.childdot=s2;
master=s2;
s2=MYF_makedot(on,DOTCLASS_TFL);
if(s2==world) return;
master.childdot=s2;
master=s2;
s2=MYF_makedot(on,DOTCLASS_TFR);
if(s2==world) return;
master.childdot=s2;
master=s2;
s2.childdot=world;
if(on.flags & FL_MONSTER || on.classname=="player"){
s2=MYF_makedot(on,DOTCLASS_VIEW);
if(s2==world) return;
master.childdot=s2;
s2.childdot=world;
}
};
void () MYF_reportent = {
if(!self.reportent){
centerprint(self,"no current entity\n");
return;
}
centerprint(self,"reporting entity\n");
eprint(self.reportent);
};
void () MYF_hidereportent = {
if(self.reportent==world){
centerprint(self,"hide attempt failed, current entity = world\n");
return;
}
else
if(!self.reportent){
centerprint(self,"hide attempt failed, no current entity\n");
return;
}
else
if(self.reportent.debugflags & DEBUG_HIDDEN){
centerprint(self,"hide attempt failed, current entity already hideden\n");
return;
}
centerprint(self,"hiding entity model\n");
if(!(self.reportent.debugflags & DEBUG_ORIGSET)){
self.reportent.origmins= self.reportent.mins;
self.reportent.origmaxs= self.reportent.maxs;
self.reportent.debugflags = self.reportent.debugflags | DEBUG_ORIGSET;
}
self.reportent.oldmodel=self.reportent.mdl;
centerprint(self,self.reportent.oldmodel);
setmodel(self.reportent,"");
self.reportent.debugflags = self.reportent.debugflags | DEBUG_HIDDEN | DEBUG_ORIGSET;
};
void (float r) MYF_unhidereportent = {
if(self.reportent==world){
if(r)
centerprint(self,"UN-hide attempt failed, current entity = world\n");
return;
}
else
if(!self.reportent){
if(r)
centerprint(self,"UN-hide attempt failed, no current entity\n");
return;
}
else
if(!(self.reportent.debugflags & DEBUG_HIDDEN)){
if(r)
centerprint(self,"UN-hide attempt failed, current entity NOT hideden\n");
return;
}
if(r)
centerprint(self,"unhiding entity model\n");
setorigin(self.reportent,self.reportent.origin+'0 0 10');
setsize(self.reportent,self.reportent.origin+self.reportent.origmins,self.reportent.origin+self.reportent.origmaxs);
setmodel(self.reportent,self.reportent.oldmodel);
self.reportent.debugflags = self.reportent.debugflags -(self.reportent.debugflags & DEBUG_HIDDEN);
};
void() MYF_paintself = {
centerprint(self,"painting self\n");
if(self.debugflags & DEBUG_PAINTED)return;
MYF_putdots(self);
self.debugflags = self.debugflags | DEBUG_PAINTED;
};
void() MYF_countdots = {
bprint("dots made = ");
bprint(ftos(dotsmade));
bprint("\n");
bprint("dots killed = ");
bprint(ftos(dotskilled));
bprint("\n");
bprint("dots count = ");
bprint(ftos(dotcount));
bprint("\n");
};
entity() MYF_findtargetview ={
local entity head, selected,final;
local float dist, temp, hlth;
dist = 2000;
selected = world;
final=world;
head = findradius(self.origin, 1000);
while(head){
traceline(self.origin,head.origin,TRUE,self);
if ((trace_fraction >= 1) && (vlen(head.origin - self.origin) < dist) && (infront(head))){
// if(!self.debugflags & DEBUG_PAINTED){
// final = head;
// }
selected = head;
dist = vlen(head.origin - self.origin);
}
head = head.chain;
}
return selected;
};
void() MYF_paint = {
centerprint(self,"painting enity\n");
local entity monster;
monster = MYF_findtargetview();
if (monster == world || monster.classname=="masterdot" || monster.classname=="dot"){
sprint(self,"No Target\n");
return;
}
// eprint(monster);
if(monster.debugflags & DEBUG_PAINTED){
sprint(self,"Target already painted\n");
return;
}
MYF_putdots(monster);
};
entity() MYF_findclosestent ={
local entity head, selected;
local float dist, temp;
dist = 2000;
selected = world;
head = findradius(self.origin, 1000);
while(head){
traceline(self.origin,head.origin,TRUE,self);
if ((trace_fraction >= 1) && (vlen(head.origin - self.origin) < dist) && (infront(head))){
selected = head;
dist = vlen(head.origin - self.origin);
}
head = head.chain;
}
return selected;
};
void() MYF_makereportent = {
local entity monster;
centerprint(self,"setting report entity\n");
if(self.reportent != world)
if(self.reportent){
MYF_unhidereportent(0);
self.reportent.effects=self.reportent.effects | EF_DIMLIGHT;
}
monster = MYF_findclosestent();
if (monster == world){
monster=self;
sprint(self,"report entity set to self\n");
}
eprint(monster);
monster.effects=monster.effects | EF_DIMLIGHT;
self.reportent=monster;
};
void() MYF_unfreeze = {
centerprint(self,"unfreezing monster\n");
self.takedamage=DAMAGE_YES;
// self.movetype=MOVETYPE_STEP;
// self.solid=SOLID_SLIDEBOX;
self.nextthink=time+0.2;
setorigin(self,self.origin+'0 0 5');
self.think=MYF_ai_run;
};
void() MYF_freezemonster = {
local entity monster;
monster = MYF_findclosestent();
if (monster == world || !(monster.flags & FL_MONSTER)){
sprint(self,"No Target\n");
return;
}
centerprint(self,"freezing monster\n");
monster.takedamage=DAMAGE_NO;
monster.nextthink=time+40;
monster.think=MYF_unfreeze;
};
void() MYF_chaseplaneview = {
//doesn't work yet
if(self.debugflags & DEBUG_CHASE){
self.debugflags = self.debugflags - (self.debugflags & DEBUG_CHASE);
self.view_ofs='0 0 22';
}
else{
self.debugflags = self.debugflags | DEBUG_CHASE;
self.view_ofs='0 0 -50';
}
};
void() MYF_debughelp = {
sprint(self,"y power up\n");
sprint(self,"u show model vectors as dots\n");
sprint(self,"i show player model vectors as dots\n");
sprint(self,"o freeze monster in view\n");
sprint(self,"p report dot count\n");
sprint(self,"h this help thing\n");
sprint(self,"j mark entity as selected\n");
sprint(self,"k print info on currently entiy\n");
sprint(self,"l hide currently entities model\n");
sprint(self,"n UN-hide currently entities model\n");
sprint(self,"m toggle chase plane view\n");
sprint(self,"q turn on and cycle camera\n");
sprint(self,"w cycle camera\n");
sprint(self,"d cycle adjust bbox mode how\n");
sprint(self,"f cycle adjust bbox mode dir\n");
sprint(self,"g toggle adjust bbox mode mins/maxs\n");
sprint(self,"c adjust bbox larger\n");
sprint(self,"v adjust bbox smaller\n");
sprint(self,"b adjust bbox to orig\n");
sprint(self,"r report bbox\n");
sprint(self,"e slow monster\n");
};
void() MYF_reportadjustmode = {
if(adjustmode & ADJUSTMODE_ALL){
sprint(self,"adjust mode = all ");
}
else
if(adjustmode & ADJUSTMODE_SIDE){
sprint(self,"adjust mode = side ");
}
else{
sprint(self,"adjust mode = both ");
}
if(adjustmode & ADJUSTMODE_X){
sprint(self," x ");
}
else
if(adjustmode & ADJUSTMODE_Y){
sprint(self," y ");
}
else{
sprint(self," z ");
}
if(adjustmode & ADJUSTMODE_SIDEPLUS){
sprint(self,"maxs\n");
}
else{
sprint(self,"mins\n");
}
};
void() MYF_setadjustmodehow = {
if(adjustmode & ADJUSTMODE_ALL){
adjustmode = adjustmode - (adjustmode & ADJUSTMODE_ALL);
adjustmode = adjustmode | ADJUSTMODE_SIDE;
}
else
if(adjustmode & ADJUSTMODE_SIDE){
adjustmode = adjustmode - (adjustmode & ADJUSTMODE_SIDE);
adjustmode = adjustmode | ADJUSTMODE_BOTH;
}
else{
adjustmode = adjustmode - (adjustmode & ADJUSTMODE_BOTH);
adjustmode = adjustmode | ADJUSTMODE_ALL;
}
MYF_reportadjustmode();
};
void() MYF_setadjustmodedir = {
if(adjustmode & ADJUSTMODE_X){
adjustmode = adjustmode - (adjustmode & ADJUSTMODE_X);
adjustmode = adjustmode | ADJUSTMODE_Y;
}
else
if(adjustmode & ADJUSTMODE_Y){
adjustmode = adjustmode - (adjustmode & ADJUSTMODE_Y);
adjustmode = adjustmode | ADJUSTMODE_Z;
}
else{
adjustmode = adjustmode - (adjustmode & ADJUSTMODE_X);
adjustmode = adjustmode | ADJUSTMODE_X;
}
MYF_reportadjustmode();
};
void() MYF_toggleadjustmodeplus = {
if(adjustmode & ADJUSTMODE_SIDEPLUS){
adjustmode = adjustmode - (adjustmode & ADJUSTMODE_SIDEPLUS);
adjustmode = adjustmode | ADJUSTMODE_SIDEMINUS;
}
else{
adjustmode = adjustmode - (adjustmode & ADJUSTMODE_SIDEMINUS);
adjustmode = adjustmode | ADJUSTMODE_SIDEPLUS;
}
MYF_reportadjustmode();
};
void() MYF_reportbounds={
local string outval;
sprint(self,"mins ");
outval=vtos(self.reportent.mins);
sprint(self,outval);
sprint(self,"\n");
sprint(self,"maxs ");
outval=vtos(self.reportent.maxs);
sprint(self,outval);
sprint(self,"\n");
};
void(float plus) MYF_adjustboundingbox = {
local vector pmin,pmax;
local vector omin,omax;
if(!self.reportent){
centerprint(self,"adjust failed, no current entity\n");
return;
}
else
if(self.reportent==world){
centerprint(self,"adjust failed, current entity = world\n");
return;
}
if(!(self.reportent.debugflags & DEBUG_ORIGSET)){
sprint(self,"setting orig vals\n");
self.reportent.origmins= self.reportent.mins;
self.reportent.origmaxs= self.reportent.maxs;
self.reportent.debugflags = self.reportent.debugflags | DEBUG_ORIGSET;
}
if(plus==999){
sprint(self,"setting back to orig vals\n");
self.reportent.mins=self.reportent.origmins;
self.reportent.maxs=self.reportent.origmaxs;
MYF_resetdots(self.reportent);
MYF_reportbounds();
return;
}
pmin=self.reportent.mins;//cua I'm to lazy to type self.reportent.mins_ over and over
pmax=self.reportent.maxs;//cua I'm to lazy to type self.reportent.mins_ over and over
omin=pmin;//cuz I'm lazy typist;
omax=pmax;
if(!(adjustmode & ADJUSTMODE_ALL)){
pmin_x=pmin_x + plus;
pmin_y=pmin_y + plus;
pmin_z=pmin_z + plus;
pmax_x=pmax_x + plus;
pmax_y=pmax_y + plus;
pmax_z=pmax_z + plus;
}
if(adjustmode & ADJUSTMODE_ALL){
if(pmin_x<0)
pmin_x=pmin_x - plus;
else
pmin_x=pmin_x + plus;
if(pmin_y<0)
pmin_y=pmin_y - plus;
else
pmin_y=pmin_y + plus;
if(pmin_z<0)
pmin_z=pmin_z - plus;
else
pmin_z=pmin_z + plus;
if(pmax_x<0)
pmax_x=pmax_x - plus;
else
pmax_x=pmax_x + plus;
if(pmax_y<0)
pmax_y=pmax_y - plus;
else
pmax_y=pmax_y + plus;
if(pmax_z<0)
pmax_z=pmax_z - plus;
else
pmax_z=pmax_z + plus;
}
else
if(adjustmode & ADJUSTMODE_SIDE){
if(adjustmode & ADJUSTMODE_X){
pmin_y=omin_y;
pmin_z=omin_z;
pmax_y=omax_y;
pmax_z=omax_z;
}
else
if(adjustmode & ADJUSTMODE_Y){
pmin_x=omin_x;
pmin_z=omin_z;
pmax_x=omax_x;
pmax_z=omax_z;
}
else{
pmin_y=omin_y;
pmin_x=omin_x;
pmax_y=omax_y;
pmax_x=omax_x;
}
if(adjustmode & ADJUSTMODE_SIDEPLUS){
pmin=omin;
}
else{
pmax=omax;
}
}
else{
if(adjustmode & ADJUSTMODE_X){
pmin_y=omin_y;
pmin_z=omin_z;
pmax_y=omax_y;
pmax_z=omax_z;
pmin_x=pmin_x-(2*plus);
}
else
if(adjustmode & ADJUSTMODE_Y){
pmin_x=omin_x;
pmin_z=omin_z;
pmax_x=omax_x;
pmax_z=omax_z;
pmin_y=pmin_y-(2*plus);
}
else{
pmin_y=omin_y;
pmin_x=omin_x;
pmax_y=omax_y;
pmax_x=omax_x;
pmin_z=pmin_z-(2*plus);
}
}
if(pmax_x<pmin_x)
pmax_x=omin_x;
if(pmax_y<pmin_y)
pmax_y=omin_y;
if(pmax_z<omin_z)
pmax_z=omin_z;
if(pmin_x>pmax_x)
pmin_x=omin_x;
if(pmin_y>pmax_y)
pmin_y=omin_y;
if(pmin_z>pmax_z)
pmin_z=omin_z;
setsize(self.reportent,pmin,pmax);
MYF_resetdots(self.reportent);
MYF_reportbounds();
};
void() MYF_shrinkboundingbox_z = {
local vector newz;
if(self.reportent==world){
centerprint(self,"shrink z attempt failed, current entity = world\n");
return;
}
else
if(!self.reportent){
centerprint(self,"shrink z attempt failed, no current entity\n");
return;
}
if(!(self.reportent.debugflags & DEBUG_ORIGSET)){
self.reportent.origmins= self.reportent.mins;
self.reportent.origmaxs= self.reportent.maxs;
self.reportent.debugflags = self.reportent.debugflags | DEBUG_ORIGSET;
}
newz=self.reportent.maxs;
newz_z=newz_z - 1;
if(newz_z<0)newz_z=0;
setsize(self.reportent,self.reportent.mins,newz);
sprint(self,"shrinking z to ");
sprint(self,ftos(newz_z));
sprint(self,"\n");
};
void() MYF_shrinkboundingbox_x = {
local vector newx;
local string outval;
sprint(self,"made 1\n");
if(!self.reportent){
centerprint(self,"shrink z attempt failed, no current entity\n");
sprint(self,"made 1.a\n");
return;
}
else
if(self.reportent==world){
centerprint(self,"shrink z attempt failed, current entity = world\n");
sprint(self,"made 1.b\n");
return;
}
sprint(self,"made 2\n");
if(!(self.reportent.debugflags & DEBUG_ORIGSET)){
sprint(self,"made 2.a\n");
sprint(self,"setting orig vals\n");
self.reportent.origmins= self.reportent.mins;
self.reportent.origmaxs= self.reportent.maxs;
self.reportent.debugflags = self.reportent.debugflags | DEBUG_ORIGSET;
sprint(self,"made 2.b\n");
}
sprint(self,"made 3\n");
newx=self.reportent.maxs;
newx_x=newx_x - 5;
if(newx_x<=self.reportent.mins_x)newx_x=self.reportent.mins_x+1;
sprint(self,"made 4\n");
setsize(self.reportent,self.reportent.mins,newx);
sprint(self,"made 5\n");
sprint(self,"shrinking x to ");
outval=ftos(newx_x);
sprint(self,outval);
sprint(self,"\n");
sprint(self,"made 6\n");
};
void() MYF_shrinkboundingbox_y = {
local vector newy;
if(self.reportent==world){
centerprint(self,"shrink y attempt failed, current entity = world\n");
return;
}
else
if(!self.reportent){
centerprint(self,"shrink y attempt failed, no current entity\n");
return;
}
if(!(self.reportent.debugflags & DEBUG_ORIGSET)){
self.reportent.origmins= self.reportent.mins;
self.reportent.origmaxs= self.reportent.maxs;
self.reportent.debugflags = self.reportent.debugflags | DEBUG_ORIGSET;
}
newy=self.reportent.maxs;
newy_y=newy_y - 1;
if(newy_y<0)newy_y=0;
setsize(self.reportent,self.reportent.mins,newy);
sprint(self,"shrinking y to ");
sprint(self,ftos(newy_y));
sprint(self,"\n");
};
void() MYF_growboundingbox_z = {
local vector newz;
if(self.reportent==world){
centerprint(self,"grow z attempt failed, current entity = world\n");
return;
}
else
if(!self.reportent){
centerprint(self,"grow z attempt failed, no current entity\n");
return;
}
if(!(self.reportent.debugflags & DEBUG_ORIGSET)){
self.reportent.origmins= self.reportent.mins;
self.reportent.origmaxs= self.reportent.maxs;
self.reportent.debugflags = self.reportent.debugflags | DEBUG_ORIGSET;
}
newz=self.reportent.maxs;
newz_z=newz_z + 1;
if(newz_z>500)newz_z=500;
setsize(self.reportent,self.reportent.mins,newz);
sprint(self,"growing z to ");
sprint(self,ftos(newz_z));
sprint(self,"\n");
};
void() MYF_growboundingbox_y = {
local vector newz;
if(self.reportent==world){
centerprint(self,"grow z attempt failed, current entity = world\n");
return;
}
else
if(!self.reportent){
centerprint(self,"grow z attempt failed, no current entity\n");
return;
}
if(!(self.reportent.debugflags & DEBUG_ORIGSET)){
self.reportent.origmins= self.reportent.mins;
self.reportent.origmaxs= self.reportent.maxs;
self.reportent.debugflags = self.reportent.debugflags | DEBUG_ORIGSET;
}
newz=self.reportent.maxs;
newz_y=newz_y + 1;
if(newz_y>500)newz_y=500;
setsize(self.reportent,self.reportent.mins,newz);
sprint(self,"growing y to ");
sprint(self,ftos(newz_y));
sprint(self,"\n");
};
void() MYF_growboundingbox_x = {
local vector newz;
if(self.reportent==world){
centerprint(self,"grow x attempt failed, current entity = world\n");
return;
}
else
if(!self.reportent){
centerprint(self,"grow x attempt failed, no current entity\n");
return;
}
if(!(self.reportent.debugflags & DEBUG_ORIGSET)){
self.reportent.origmins= self.reportent.mins;
self.reportent.origmaxs= self.reportent.maxs;
self.reportent.debugflags = self.reportent.debugflags | DEBUG_ORIGSET;
}
newz=self.reportent.maxs;
newz_x=newz_x + 1;
if(newz_x>500)newz_x=500;
setsize(self.reportent,self.reportent.mins,newz);
sprint(self,"growing x to ");
sprint(self,ftos(newz_x));
sprint(self,"\n");
};
void() MYF_unslow = {
centerprint(self,"unfreezing monster\n");
self.takedamage=DAMAGE_YES;
// self.movetype=MOVETYPE_STEP;
// self.solid=SOLID_SLIDEBOX;
self.nextthink=time+0.2;
setorigin(self,self.origin+'0 0 5');
self.think=MYF_ai_run;
};
void() MYF_mythink = {
self.origthink();
self.nextthink=time+10;
self.origthink=self.think;
self.think=MYF_mythink;
};
void() MYF_slowmonster = {
local entity monster;
monster = MYF_findclosestent();
if (monster == world || !(monster.flags & FL_MONSTER)){
sprint(self,"No Target\n");
return;
}
if(monster.debugflags & DEBUG_SLOWED){
sprint(self,"Monstered already slowed\n");
return;
}
centerprint(self,"slowing monster\n");
monster.debugflags=monster.debugflags | DEBUG_SLOWED;
monster.nextthink=time+10;
monster.origthink=monster.think;
monster.think=MYF_mythink;
};